package com.itao.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 导出excel
 * 返回值必须是List列表不能是null
 * @author sjt
 * @Date 2024/12/9 10:10
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface ExcelExport {

    /**
     * 导出的文件名
     */
    String value();

    /**
     * 返回值List中元素的类型
     * 如果是默认值则返回空列表时不会导出文件
     */
    Class<?> returnType() default void.class;

    /**
     * 是否是动态头，如果是true需指定headBeanName
     * 当为true时，returnType将忽略
     */
    boolean dynamicHead() default false;

    /**
     * 当为动态头时，需指定一个实现了{@link DynamicHeadBean}接口的bean
     */
    String headBeanName() default "";

    /**
     * 获取WriteHandler的beanName,需要实现 {@link WriteHandlerBean}接口
     */
    String handlerBeanName() default "";
}
